// import * as mars3d from "mars3d"

var map // mars3d.Map三维地图对象
let conicSensor

// 需要覆盖config.json中地图属性参数（当前示例框架中自动处理合并）
var mapOptions = {
  scene: {
    // 此处参数会覆盖config.json中的对应配置
    center: { lat: 25.987821, lng: 122.076928, alt: 1295307, heading: 327, pitch: -59 }
  }
}

/**
 * 初始化地图业务，生命周期钩子函数（必须）
 * 框架在地图初始化完成后自动调用该函数
 * @param {mars3d.Map} mapInstance 地图对象
 * @returns {void} 无
 */
function onMounted(mapInstance) {
  map = mapInstance // 记录map

  // 创建矢量数据图层
  const graphicLayer = new mars3d.layer.GraphicLayer()
  map.addLayer(graphicLayer)

  // 加个模型
  const graphic = new mars3d.graphic.ModelEntity({
    name: "地面站模型",
    position: [117.170264, 31.840312, 258],
    style: {
      url: "//data.mars3d.cn/gltf/mars/leida.glb",
      scale: 1,
      minimumPixelSize: 40,
      clampToGround: true
    }
  })
  graphicLayer.addGraphic(graphic)

  addConicSensor(graphicLayer)
}

/**
 * 释放当前地图业务的生命周期函数
 * @returns {void} 无
 */
function onUnmounted() {
  map = null
}

// 初始化 添加一个双椎体
function addConicSensor(graphicLayer) {
  conicSensor = new mars3d.graphic.ConicSensor({
    position: [117.170264, 31.840312, 363],
    style: {
      angle: 25,
      length: 300000,
      color: "rgba(255,0,0,0.4)",
      outlineColor: "rgba(255,255,255,0.9)"
    }
  })
  graphicLayer.addGraphic(conicSensor)
}

// 顶部显示隐藏
function sensorTop(isChecked) {
  conicSensor.topShow = isChecked
}

// 地面阴影
function sensorArea(val) {
  conicSensor.shadowShow = val
}

// 圆锥体 显示/隐藏
function sensorShowHide(isChecked) {
  conicSensor.show = isChecked
}

// 半径改变
function sensorRadius(val) {
  conicSensor.length = val
}

// 角度(半长角)
function angle(val) {
  conicSensor.angle = val
}
